<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>

        /* 箭头函数：
            应用1：简化回调函数的定义
            应用2：固定函数内this的指向 */


        // 应用1：简化回调函数的定义
        var arrs=["alice","cici","lucy","tom"];
        // arrs.forEach(function(value,index){
        //     // console.log(value);//元素值
        //     console.log(index);//索引值
        // });
        arrs.forEach((value,index)=>void console.log(value));

        // 应用2：固定函数内this的指向
       /*  
        ES6中的箭头函数中的this指向于当前函数定义时的上下文对象(调用者)，
        箭头函数不会构建this，箭头函数中的this是一个引用，引用的是定义时的上下文对象，
        箭头函数在浏览器中进行定义时，会层层寻找上下文，如果没有，恒指向window
        */

     

        var obj={
            name:"我是对象",
            show1:function(){
                console.log(this);
            },
            show2:()=>{
                console.log(this);
            },
            show3:function(){
                "use strict";
                console.log(this);
                // var _this=this;
                function f1(){
                    console.log(this);
                    // console.log(_this);
                }
                let f2=()=>{
                    console.log(this);
                };
                f1();
                f2();
            }
        }
        // obj.show1();
        // obj.show2();
        // obj.show3();

        let f=obj.show3;
        f();





    </script>
</head>
<body>
    
</body>
</html>